From 8dcb5cb96819547e574d4ca619c54c6f902b8860 Mon Sep 17 00:00:00 2001 From: Factiven Date: Thu, 25 May 2023 22:56:21 +0700 Subject: Update v3.6.1 > Added Thumbnail to info page > Temporarily removed Manga from website until the page is finished --- pages/anime/watch/[...info].js | 355 +++++++++++++++++++---------------------- 1 file changed, 164 insertions(+), 191 deletions(-) (limited to 'pages/anime/watch/[...info].js') diff --git a/pages/anime/watch/[...info].js b/pages/anime/watch/[...info].js index 1350ce8..b3d02cf 100644 --- a/pages/anime/watch/[...info].js +++ b/pages/anime/watch/[...info].js @@ -14,7 +14,10 @@ import { Navigasi } from "../.."; import { ChevronDownIcon, ForwardIcon } from "@heroicons/react/24/solid"; import { useRouter } from "next/router"; +import { GET_MEDIA_USER } from "../../../queries"; + import dotenv from "dotenv"; +import Footer from "../../../components/footer"; const VideoPlayer = dynamic(() => import("../../../components/videoPlayer", { ssr: false }) @@ -29,8 +32,10 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { const [loading, setLoading] = useState(false); const [playingTitle, setPlayingTitle] = useState(null); const [poster, setPoster] = useState(null); + const [progress, setProgress] = useState(0); const [episodes, setEpisodes] = useState([]); + const [artStorage, setArtStorage] = useState(null); const router = useRouter(); @@ -64,7 +69,6 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { }); const fetchData = async () => { - try { if (provider) { const res = await fetch( @@ -86,6 +90,7 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { } let aniData = null; + setArtStorage(JSON.parse(localStorage.getItem("artplayer_settings"))); if (provider) { const res = await fetch( @@ -138,58 +143,7 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { "Content-Type": "application/json", }, body: JSON.stringify({ - query: ` - query ($username: String, $status: MediaListStatus) { - MediaListCollection(userName: $username, type: ANIME, status: $status, sort: SCORE_DESC) { - user { - id - name - about (asHtml: true) - createdAt - avatar { - large - } - statistics { - anime { - count - episodesWatched - meanScore - minutesWatched - } - } - bannerImage - mediaListOptions { - animeList { - sectionOrder - } - } - } - lists { - status - name - entries { - id - mediaId - status - progress - score - media { - id - status - title { - english - romaji - } - episodes - coverImage { - large - } - } - } - } - } - } - `, + query: GET_MEDIA_USER, variables: { username: sessions?.user.name, }, @@ -206,6 +160,10 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { ); const gut = git?.find((item) => item?.media.id === parseInt(aniId)); + if (gut) { + setProgress(gut.progress); + } + if (gut?.status === "COMPLETED") { setStatusWatch("REPEATING"); } else if ( @@ -282,85 +240,83 @@ export default function Info({ sessions, id, aniId, provider, proxy }) {
)}
- { - data && data?.episodes.length > 0 ? ( - data.episodes - .filter((items) => items.id == id) - .map((item, index) => ( -
-
-
- - {item.title || - data.title.romaji || - data.title.english} - -
-

- Episode {item.number} -

+ {data && data?.episodes.length > 0 ? ( + data.episodes + .filter((items) => items.id == id) + .map((item, index) => ( +
+
+
+ + {item.title || + data.title.romaji || + data.title.english} +
-
-
- - -
-
+
+
+ +
+
- )) +
+ )) ) : (
@@ -473,38 +429,53 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { Up Next
- { - data && data?.episodes.length > 0 ? ( - data.episodes.some( - (item) => item.title && item.description - ) ? ( - episodes.map((item) => { - return ( - -
-
- Anime Cover -
+ {data && data?.episodes.length > 0 ? ( + data.episodes.some( + (item) => item.title && item.description + ) ? ( + episodes.map((item) => { + const time = artStorage?.[item.id]?.time; + const duration = artStorage?.[item.id]?.duration; + let prog = (time / duration) * 100; + if (prog > 90) prog = 100; + return ( + +
+
+ Anime Cover + Episode {item.number} @@ -521,40 +492,41 @@ export default function Info({ sessions, id, aniId, provider, proxy }) {
)}
-
-

- {item.title} -

-

- {item.description} -

-
- - ); - }) - ) : ( - data.episodes.map((item) => { - return ( - +
- Episode {item.number} - - ); - }) - ) +

+ {item.title} +

+

+ {item.description} +

+
+ + ); + }) + ) : ( + data.episodes.map((item) => { + return ( + + Episode {item.number} + + ); + }) + ) ) : ( <> {[1].map((item) => ( @@ -568,6 +540,7 @@ export default function Info({ sessions, id, aniId, provider, proxy }) {
+
-- cgit v1.2.3